package javaCode.chapter13.set_;

import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/**
 * @author 徐州城
 * @version 1.0
 */
public class SetMethod {
    @SuppressWarnings("all")
    public static void main(String[] args) {
        //解读
        //1. 以Set 接口的实现类 HashSet 来讲解Set 接口的方法
        //2. set 接口的实现类的对象(Set接口对象)，不能存放重复的元素，可以添加一个null
        //3. set 接口对象存放数据是无序的(即 添加的顺序和取出的顺序不一致)
        //4. 注意：取出的顺序的顺序虽然不是添加的顺序，但是它是固定的
        Set set = new HashSet();
        set.add("a");
        set.add("k");
        set.add("4");
        set.add("7");
        set.add(null);
        set.add(null);

        System.out.println("set=" + set);

        //遍历
        //方式一：迭代器
        Iterator iterator = set.iterator();
        while (iterator.hasNext()) {
            Object obj = iterator.next();
            System.out.println("obj=" + obj);
        }

        //方式二：增强for
        for (Object obj : set) {
            System.out.println("obj=" + obj);
        }

        //set 接口对象，不能通过索引来获取
        iterator = set.iterator();
        for (int i = 0; i < set.size(); i++) {
            Object next = iterator.next();
            System.out.println("next=" + next);
        }
    }
}
